#ifndef _892b7eda_6d2d_46f4_aa77_fb5d7937__MACRO_H__
#define _892b7eda_6d2d_46f4_aa77_fb5d7937__MACRO_H__


#define JOIN(a, b) a##b

#define Make_Params1_0(t)
#define Make_Params1_1(t)    t##1
#define Make_Params1_2(t)    t##1, t##2
#define Make_Params1_3(t)    t##1, t##2, t##3
#define Make_Params1_4(t)    t##1, t##2, t##3, t##4
#define Make_Params1_5(t)    t##1, t##2, t##3, t##4, t##5
#define Make_Params1_6(t)    t##1, t##2, t##3, t##4, t##5, t##6
#define Make_Params1_7(t)    t##1, t##2, t##3, t##4, t##5, t##6,t##7
#define Make_Params1_8(t)    t##1, t##2, t##3, t##4, t##5, t##6,t##7,t##8

#define Make_Params2_0(t1, t2)
#define Make_Params2_1(t1, t2)   t1##1 t2##1
#define Make_Params2_2(t1, t2)   t1##1 t2##1, t1##2 t2##2
#define Make_Params2_3(t1, t2)   t1##1 t2##1, t1##2 t2##2, t1##3 t2##3
#define Make_Params2_4(t1, t2)   t1##1 t2##1, t1##2 t2##2, t1##3 t2##3, t1##4 t2##4
#define Make_Params2_5(t1, t2)   t1##1 t2##1, t1##2 t2##2, t1##3 t2##3, t1##4 t2##4, t1##5 t2##5
#define Make_Params2_6(t1, t2)   t1##1 t2##1, t1##2 t2##2, t1##3 t2##3, t1##4 t2##4, t1##5 t2##5, t1##6 t2##6
#define Make_Params2_7(t1, t2)   t1##1 t2##1, t1##2 t2##2, t1##3 t2##3, t1##4 t2##4, t1##5 t2##5, t1##6 t2##6,t1##7 t2##7
#define Make_Params2_8(t1, t2)   t1##1 t2##1, t1##2 t2##2, t1##3 t2##3, t1##4 t2##4, t1##5 t2##5, t1##6 t2##6,t1##7 t2##7,t1##8 t2##8

#define Make_Params1(n, t)         JOIN(Make_Params1_, n) (t)
#define Make_Params2(n, t1, t2)    JOIN(Make_Params2_, n) (t1, t2)


#endif //_892b7eda_6d2d_46f4_aa77_fb5d7937__MACRO_H__
